package tp1;

import org.uqbar.commons.model.ObservableObject;

public class Casillero extends ObservableObject {
	private int posicion;
	private Personaje personaje;
	private Esfera esfera;

	public Personaje getPersonaje() {
		return personaje;
	}

	public void setPersonaje(Personaje personaje) {
		this.setProperty("personaje", personaje);
		this.firePropertyChange("objetoDragonBall", null, this.getObjetoDragonBall());
	}

	public Esfera getEsfera() {
		return esfera;
	}

	public void setEsfera(Esfera esfera) {
		this.setProperty("esfera", esfera);
		this.firePropertyChange("objetoDragonBall", null, this.getObjetoDragonBall());
	}

	public int getPosicion() {
		return posicion;
	}

	public void setPosicion(int posicion) {
		this.setProperty("posicion", posicion);
	}

	// public void Casillero(int punto) {
	// this.setPosicion(punto);
	// }

	public Casillero(int punto) {
		this.setPosicion(punto);
	}

	public boolean isEmpty() {
		return (this.getEsfera() == null && this.getPersonaje() == null);
	}

	public String getObjetoDragonBall() {
		String nombreObjeto = "VACIO";
		if (!(this.getEsfera() == null)) {
			nombreObjeto = this.getEsfera().getImage();
		}
		if (!(this.getPersonaje() == null)) {
			nombreObjeto = this.getPersonaje().getImage();
		}

		return nombreObjeto;
	}

	public void agregarEsfera(Esfera unaEsfera) {
		this.setEsfera(unaEsfera);
		unaEsfera.setCasillero(this);
	}

	public void agregarPersonaje(Personaje unPersonaje) {
		this.setPersonaje(unPersonaje);
		unPersonaje.setCasillero(this);
	}

	public Esfera quitarEsfera() {
		Esfera existente = this.getEsfera();
		this.setEsfera(null);
		return existente;
	}
}
